/*
 * config.h
 *
 *  Created on: Mar 27, 2022
 *      Author: Abyss
 */
#ifndef INC_CONFIG_H_
#define INC_CONFIG_H_
#include "stm32f1xx_hal.h"
#include "stdio.h"
#include "nrf24L01.h"
#include "oled.h"
#include "cJSON.h"

#define KEY1_Pin GPIO_PIN_13
#define KEY1_GPIO_Port GPIOC
#define KEY0_Pin GPIO_PIN_1
#define KEY0_GPIO_Port GPIOC
#define WK_UP_Pin GPIO_PIN_0
#define WK_UP_GPIO_Port GPIOA
#define NRF_CE_Pin GPIO_PIN_4
#define NRF_CE_GPIO_Port GPIOA
#define NRF_CSN_Pin GPIO_PIN_4
#define NRF_CSN_GPIO_Port GPIOC
#define NRF_IRQ_Pin GPIO_PIN_5
#define NRF_IRQ_GPIO_Port GPIOC
#define NRF_IRQ_EXTI_IRQn EXTI9_5_IRQn
#define LED0_Pin GPIO_PIN_8
#define LED0_GPIO_Port GPIOA
#define LED1_Pin GPIO_PIN_2
#define LED1_GPIO_Port GPIOD
#define OLED_SCL_Pin GPIO_PIN_6
#define OLED_SCL_GPIO_Port GPIOB
#define OELD_SDA_Pin GPIO_PIN_7
#define OELD_SDA_GPIO_Port GPIOB


extern TIM_HandleTypeDef htim1;  //yun
extern TIM_HandleTypeDef htim3;
extern TIM_HandleTypeDef htim7;

extern ADC_HandleTypeDef hadc1;

extern UART_HandleTypeDef huart1;
extern UART_HandleTypeDef huart2;
extern UART_HandleTypeDef huart3;  //yun
extern DMA_HandleTypeDef  hdma_usart3_tx;




int get_adc(ADC_HandleTypeDef adc);
double get_ph();
void run ();
void get_value();
void get_temp();
void USART_HMI_Send();

/**串口3空闲接收**/
void Uart3_Call();
void Uart3_Tim_Call();
/**modbus资源初始化**/
int modbus_init();

/**DS18B20驱动程序**/
#define DQ_GPIO_Port  GPIOC
#define DQ_Pin        GPIO_PIN_6
#define DQ_Read       HAL_GPIO_ReadPin(DQ_GPIO_Port,DQ_Pin)
//ROM指令
#define SKIP_ROM         0xCC     //跳过 ROM
#define CONVERT_TEMP     0x44    //转换温度
#define READ_SCRATCHPAD  0xBE   //读取暂存器内容
typedef enum
{
	DQ_LEVEL_LOW = 0,
	DQ_LEVEL_HIGHT
}DQ_LEVEL_Type;
#define DQ_Write(Level)     if(Level) \
										HAL_GPIO_WritePin(DQ_GPIO_Port,DQ_Pin,SET); \
						    else  \
										HAL_GPIO_WritePin(DQ_GPIO_Port,DQ_Pin,RESET);
//读取总线电平
#define DQ_Read        HAL_GPIO_ReadPin(DQ_GPIO_Port,DQ_Pin)
void DQ_GPIO_Init(void);
uint8_t Ds18b20_Init();
float Ds18b20_Get_Temp(void);
/** over **/

#endif /* INC_CONFIG_H_ */
